//413 求连续且等差的子数组
/*
给定一个数组，求这个数组中连续且等差的子数组一共有多少个

输入输出样例
	输入是一个一维数组，输出是满足等差条件的连续字数组个数

Input: nums = [1,2,3,4]
Output: 3

分析：
	等差数组，至少有三个元素组成
	子数组满足：nums[i] - nums[i - 1] == nums[i - 1] - nums[i - 2]
*/
int numberOfArithmeticSlices(vector<int> &nums)
{
	int n = nums.size();
	if (n < 3)
		return 0;
	vector<int> dp(n, 0);
	for (int i = 2; i < n; ++i) //
	{
		if (nums[i] - nums[i - 1] == nums[i - 1] - nums[i - 2])
		{
			dp[i] = dp[i - 1] + 1; //
		}
	}
	return accumulate(dp.begin(), dp.end(), 0);
}